package com.bupt.secret.dto;

import com.sun.jna.Structure;
import lombok.Data;

import java.util.Arrays;
import java.util.List;

import static com.bupt.secret.constant.BuptConstant.ECCREF_MAX_LEN;
/**
 * @desc 加密数据结构
 * @author shishumin
 * @date 2024/8/27 14:18
 */
@Data
public class ECCCipher extends Structure {

    /**
     * X分量 假设ECCref_MAX_LEN是一个定义的常量
     */
    public byte[] x = new byte[ECCREF_MAX_LEN];

    /**
     * Y分量 假设ECCref_MAX_LEN是一个定义的常量
     */
    public byte[] y = new byte[ECCREF_MAX_LEN];

    /**
     * 明文的杂凑值，消息长度可能根据实际情况调整
     */
    public byte[] m = new byte[32];

    /**
     * 密文的数据长度
     */
    public int length;

    /**
     * 密文数据
     */
    public byte[] ciphertext = new byte[1];

    @Override
    protected List<String> getFieldOrder() {
        return Arrays.asList("x", "y", "m", "length", "ciphertext");
    }
}